package com.atguigu.gmall.product.service.impl;

import com.atguigu.entity.SkuAttrValue;
import com.atguigu.entity.SkuImage;
import com.atguigu.entity.SkuInfo;
import com.atguigu.entity.SkuSaleAttrValue;
import com.atguigu.gmall.product.mapper.SkuInfoMapper;
import com.atguigu.gmall.product.service.SkuAttrValueService;
import com.atguigu.gmall.product.service.SkuImageService;
import com.atguigu.gmall.product.service.SkuInfoService;
import com.atguigu.gmall.product.service.SkuSaleAttrValueService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 库存单元表 服务实现类
 * </p>
 *
 * @author 冇有
 * @since 2021-09-16
 */
@Service
public class SkuInfoServiceImpl extends ServiceImpl<SkuInfoMapper, SkuInfo> implements SkuInfoService {
    //图片
    @Autowired
    SkuImageService skuImageService;
    //销售属性与Sku关联信息
    @Autowired
    SkuAttrValueService skuAttrValueService;
   //Sku的销售属性值
    @Autowired
    SkuSaleAttrValueService skuSaleAttrValueService;
    @Override
    public void saveSkuInfo(SkuInfo skuInfo) {
      //保存SKU信息
         this.save(skuInfo);
         //保存平台属性与SKU关联表
        List<SkuAttrValue> skuAttrValueList = skuInfo.getSkuAttrValueList();
        for (SkuAttrValue s :skuAttrValueList) {
           s.setSkuId(skuInfo.getId());
            skuAttrValueService.save(s);
        }
        //图片集合
        List<SkuImage> skuImageList = skuInfo.getSkuImageList();
        for (SkuImage s :skuImageList) {
            s.setSkuId(skuInfo.getId());
            skuImageService.save(s);
        }
        //销售属性关联表
        List<SkuSaleAttrValue> skuSaleAttrValueList = skuInfo.getSkuSaleAttrValueList();
        for (SkuSaleAttrValue skuSaleAttrValue: skuSaleAttrValueList
             ) {
            skuSaleAttrValue.setSkuId(skuInfo.getId());
            Long spuId = skuInfo.getSpuId();
            skuSaleAttrValue.setSpuId(spuId);
            skuSaleAttrValueService.save(skuSaleAttrValue);
        }
    }

}
